package app

import (
	"context"
	"go.uber.org/zap"
	"gorm.io/gorm"
	"jgame-api/config"
)

var (
	ctx = context.TODO()
	// app全局配置
	Conf *config.Config
	// Zap日志组件
	zapLogger *zap.Logger
	// 常规使用的日志组件
	Logger *zap.SugaredLogger
	// 数据库连接池
	DB *gorm.DB
	// Redis连接池
	RDB *RdbClient
)

const version = "1.0.0"

// Init 启动APP各种组件
func Init() {
	// 初始化配置信息
	Conf = config.Init()
	// 初始化Zap
	zapLogger = createZap(Conf.Logger)
	Logger = zapLogger.Sugar()
	// 初始化数据库
	DB = createDB(Conf.DB).Debug()
	// 初始化Redis
	RDB = createRedis(Conf.Redis)
}

// Stop 停止app，释放各种资源
func Stop() {
	// 关闭数据库连接
	closeDB(DB)
	// 关闭Redis连接池
	RDB.Close()
}
